import logging

import data_access

logger = logging.getLogger(__name__)


def fetch_all_data():
    logger.debug("业务逻辑: 获取所有数据")
    return data_access.get_all_data()


def fetch_data_by_id(data_id):
    logger.debug(f"业务逻辑: 通过ID获取数据: {data_id}")
    data = data_access.get_data_by_id(data_id)
    if not data:
        logger.error("数据未找到")
        raise ValueError("数据未找到")
    return data


def add_data(name, description):
    logger.debug(f"业务逻辑: 添加数据: {name}, {description}")
    if not name or not description:
        logger.error("需要提供名称和描述")
        raise ValueError("需要提供名称和描述")
    return data_access.create_data(name, description)


def modify_data(data_id, name, description):
    logger.debug(f"业务逻辑: 修改数据: {data_id}, {name}, {description}")
    if not name or not description:
        logger.error("需要提供名称和描述")
        raise ValueError("需要提供名称和描述")
    data = data_access.update_data(data_id, name, description)
    if not data:
        logger.error("数据未找到")
        raise ValueError("数据未找到")
    return data


def remove_data(data_id):
    logger.debug(f"业务逻辑: 删除数据: {data_id}")
    data = data_access.get_data_by_id(data_id)
    if not data:
        logger.error("数据未找到")
        raise ValueError("数据未找到")
    data_access.delete_data(data_id)
    return True
